// 导入系统包/模块http(Node-API自带的)
const http = require("http");
const { getSearchParams } = require("./modules/reqHelper");
const { getFile } = require("./modules/fileHelper");

// 使用http包创建服务器实例【接收请求req并以res响应之】
const server = http.createServer(
  /* requestListener函数 = 请求监听器 */
  // 请求监听器：req=request=请求对象 res=response=响应对象
  (req, res) => {
    // 打印请求对象
    // console.log("req=", req);
    console.log("req.url=", req.url); //请求的URL（路径以后的部分）
    console.log("req.method=", req.method); //请求的方法

    /* 根据req.url的不同 响应不同的内容 */
    if (req.url === "/name") {
      res.end("brotherHei");
    } 
    
    else if (req.url === "/age") {
      res.end("70");
    }

    // /add?a=2&b=3
    else if (req.url.startsWith("/add?")) {
      // 提取查询参数a和b
      let obj = getSearchParams(req.url);
      // let {a,b} = getSearchParams(req.url);
      console.log("obj=", obj);

      res.end(obj.a * 1 + obj.b * 1 + "");
      // res.end(a * 1 + b * 1 + "");
    }

    /* 静态资源访问 */
    // /file/imgs/fuckoff.jpg
    // /file/js/cookies.js
    else if (req.url.startsWith("/file/")) {
      // 把url和res响应对象一并入参给getFile
      getFile(req.url, res);
      // res.end("get file ok")
    }

    // /login?username=heige&password=123456
    else if (req.url.startsWith("/login?")) {
      let { username, password } = getSearchParams(req.url);
      console.log(username, password);

      /* 用户名为heige且密码为123456的时候 登录成功 否则登录失败 */
      if (username === "heige" && password === "123456") {
        // 给客户端写cookie
        // 帮用户跳转首页(临时重定向302)
        res.writeHead(
          302,//状态码=临时重定向=浏览器会自动查询Location响应头对应的URL跳转之

          /* 一吨响应头 */
          [
            ["Set-Cookie","logined=true"],//给客户端【client】写COOKIE
            ["Set-Cookie","username=heige"],//给客户端【client】写COOKIE
            ["Location","/file/pages/home.html"]//302临时重定向的跳转目标页
          ]
        )
        res.end()//以【卵都没有】结束响应
        
      } else {
        // 跳转登录页
        res.writeHead(302,[
          // Cookie中不得写中文
          // 删除COOKIE logined
          ["Set-Cookie","logined=whatever;expires=Thu Jan 01 1970 08:00:00 GMT+0800 (中国标准时间)"],
          ["Location","/file/pages/login.html"]//服务端一脚将用户踹到登录页
        ])
        res.end()
      }

    } 
    
    else {
      /* 其它请求直接返回问候语 */
      //以一个字符串结束响应
      res.end("Hello app");
    }

  }

);

// 让该服务器实例监听在8000端口
server.listen(8000, () => console.log("成功监听在8000端口..."));

// 我改代码了
